/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package delysoft;

import com.tesis2.pucp.Envio.Controlador.BuscarAlmacenControlador;
import com.tesis2.pucp.Envio.Controlador.BuscarClienteControlador;
import com.tesis2.pucp.Envio.Controlador.BuscarHorarioControlador;
import com.tesis2.pucp.Envio.Controlador.BuscarPedidoControlador;
import com.tesis2.pucp.Envio.Controlador.BuscarProductoControlador;
import com.tesis2.pucp.Envio.Controlador.BuscarVehiculoControlador;
import com.tesis2.pucp.Envio.DAO.AlmacenDAO;
import com.tesis2.pucp.Envio.DAO.ClienteDAO;
import com.tesis2.pucp.Envio.DAO.HorarioDAO;
import com.tesis2.pucp.Envio.DAO.PedidoDAO;
import com.tesis2.pucp.Envio.DAO.ProductoDAO;
import com.tesis2.pucp.Envio.DAO.VehiculoDAO;
import com.tesis2.pucp.Envio.Vista.BuscarAlmacenGUI;
import com.tesis2.pucp.Envio.Vista.BuscarClienteGUI;
import com.tesis2.pucp.Envio.Vista.BuscarPedidoGUI;
import com.tesis2.pucp.Envio.Vista.BuscarProductosGUI;
import com.tesis2.pucp.Envio.Vista.BuscarTurnoGUI;
import com.tesis2.pucp.Envio.Vista.BuscarVehiculoGUI;
import com.tesis2.pucp.Modelo.TesisUsuario;
import com.tesis2.pucp.Seguridad.Controlador.BuscarPerfilControlador;
import com.tesis2.pucp.Seguridad.Controlador.BuscarUsuarioControlador;
import com.tesis2.pucp.Seguridad.DAO.PerfilDAO;
import com.tesis2.pucp.Seguridad.DAO.UsuarioDAO;
import com.tesis2.pucp.Seguridad.Vista.BuscarPerfilGUI;
import com.tesis2.pucp.Seguridad.Vista.BuscarUsuarioGUI;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 *
 * @author pachon
 */
public class MainController {
    private MainMenuGUI view;
    private TesisUsuario usuario;
    
    public MainController(MainMenuGUI view, TesisUsuario usuario){
        this.view = view;
        this.usuario = usuario;
        this.view.llenarPanelInfo(usuario);
        this.view.addBuscarAlmacenMenuItem(new ShowAlmacenesMenuItem());
        this.view.addBuscarClienteMenuItem(new ShowClienteMenuItem());
        this.view.addBuscarPerfilMenuItem(new ShowPerfilMenuItem());
        this.view.addBuscarUsuarioMenutItem(new ShowUsuariosMenuItem());
        this.view.addBuscarPedidosMenutItem(new ShowBuscarPedidosMenuItem());
        this.view.addMostrarSimulacionMapaMenutItem(new ShowSimulacionMenuItem());
        this.view.addMostrarVehiculosMenuItem(new ShowVehiculosMenuItem());
        this.view.addSalirListener(new SalirListener());
        this.view.addBuscarTurnosMenuItem(new ShowTurnosMenuItem());
        this.view.addBuscarProductosMenuItem(new ShowBuscarProductosMenuItem());
        view.setVisible(true);
        
    }
    class ShowAlmacenesMenuItem  implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            
            AlmacenDAO dao = new AlmacenDAO();
            BuscarAlmacenGUI buscarClienteGUI = new BuscarAlmacenGUI();
            BuscarAlmacenControlador controlador = new BuscarAlmacenControlador(dao, buscarClienteGUI);
            view.setCurrentPanel(buscarClienteGUI);
            
        }
    }
    
    class ShowBuscarProductosMenuItem  implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            
            ProductoDAO  dao = new ProductoDAO();
            BuscarProductosGUI vista = new BuscarProductosGUI();
            BuscarProductoControlador c = new BuscarProductoControlador(dao, vista);
            view.setCurrentPanel(vista);
        }
    }
    
    class ShowClienteMenuItem  implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            
            ClienteDAO dao = new ClienteDAO();
            BuscarClienteGUI buscarClienteGUI = new BuscarClienteGUI();
            BuscarClienteControlador controlador = new BuscarClienteControlador(dao, buscarClienteGUI);
            view.setCurrentPanel(buscarClienteGUI);
            
        }
    }
    class ShowPerfilMenuItem  implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            
            PerfilDAO dao = new PerfilDAO();
            BuscarPerfilGUI buscarClienteGUI = new BuscarPerfilGUI();
            BuscarPerfilControlador controlador = new BuscarPerfilControlador(dao, buscarClienteGUI);
            view.setCurrentPanel(buscarClienteGUI);
            
        }
    }
    class ShowUsuariosMenuItem  implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            UsuarioDAO dao = new UsuarioDAO();
            BuscarUsuarioGUI buscarUsuarioGUI = new BuscarUsuarioGUI();
            BuscarUsuarioControlador controlador = new BuscarUsuarioControlador(dao, buscarUsuarioGUI);
            view.setCurrentPanel(buscarUsuarioGUI);
        }
    }
    class ShowBuscarPedidosMenuItem  implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            PedidoDAO dao = new PedidoDAO();
            BuscarPedidoGUI buscarPedidoGUI = new BuscarPedidoGUI();
            BuscarPedidoControlador controlador = new BuscarPedidoControlador(dao, buscarPedidoGUI);
            view.setCurrentPanel(buscarPedidoGUI);
            
        }
    }
    class ShowSimulacionMenuItem  implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            
            
        }
    }
    class ShowVehiculosMenuItem  implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            VehiculoDAO dao = new VehiculoDAO();
            BuscarVehiculoGUI buscarVehiculoGUI = new BuscarVehiculoGUI();
            BuscarVehiculoControlador controlador = new BuscarVehiculoControlador(dao, buscarVehiculoGUI);
            view.setCurrentPanel(buscarVehiculoGUI);
            
        }
    }
    
    class ShowTurnosMenuItem  implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            HorarioDAO dao = new HorarioDAO();
            BuscarTurnoGUI buscarTurnoGUI = new BuscarTurnoGUI();
            BuscarHorarioControlador controlador = new BuscarHorarioControlador(dao, buscarTurnoGUI);
            view.setCurrentPanel(buscarTurnoGUI);
            
        }
    }
    
    class SalirListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            view.dispose();
        }
    }
    
}
